package fr.afcepf.hotels.soa.entity;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import java.io.Serializable;


/**
 * The persistent class for the categorievoiture database table.
 * 
 */
@Entity
@Table(name="categorievoiture")
public class CategorieVoiture  implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idCategorie;

	@Column(nullable=false, length=100)
	private String libelleCategorie;

	@Column(nullable=false)
	private int nbKmMaxJournalier;

	@Column(nullable=false, precision=5, scale=2)
	private Float prixJournalier;

	@Column(nullable=false, precision=5, scale=2)
	private Float prixKmSupplementaire;

	
	//bi-directional many-to-one association to Voiture
	@OneToMany(mappedBy="categorievoiture", cascade=CascadeType.ALL , fetch=FetchType.EAGER)
	private List<Voiture> voitures;

	public CategorieVoiture() {
	}

	public int getIdCategorie() {
		return this.idCategorie;
	}

	public void setIdCategorie(int idCategorie) {
		this.idCategorie = idCategorie;
	}

	public String getLibelleCategorie() {
		return this.libelleCategorie;
	}

	public void setLibelleCategorie(String libelleCategorie) {
		this.libelleCategorie = libelleCategorie;
	}

	public int getNbKmMaxJournalier() {
		return this.nbKmMaxJournalier;
	}

	public void setNbKmMaxJournalier(int nbKmMaxJournalier) {
		this.nbKmMaxJournalier = nbKmMaxJournalier;
	}

	public Float getPrixJournalier() {
		return this.prixJournalier;
	}

	public void setPrixJournalier(Float prixJournalier) {
		this.prixJournalier = prixJournalier;
	}

	public Float getPrixKmSupplementaire() {
		return this.prixKmSupplementaire;
	}

	public void setPrixKmSupplementaire(Float prixKmSupplementaire) {
		this.prixKmSupplementaire = prixKmSupplementaire;
	}

	public List<Voiture> getVoitures() {
		return this.voitures;
	}

	public void setVoitures(List<Voiture> voitures) {
		this.voitures = voitures;
	}

	public CategorieVoiture(int idCategorie, String libelleCategorie,
			int nbKmMaxJournalier, Float prixJournalier,
			Float prixKmSupplementaire) {
		super();
		this.idCategorie = idCategorie;
		this.libelleCategorie = libelleCategorie;
		this.nbKmMaxJournalier = nbKmMaxJournalier;
		this.prixJournalier = prixJournalier;
		this.prixKmSupplementaire = prixKmSupplementaire;
	}
	
	
}